home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Amiga Collections: Taifun
/
Taifun 097 (1989-05-15)(Ossowski, Stefan)(DE)(PD).zip
/
Taifun 097 (1989-05-15)(Ossowski, Stefan)(DE)(PD).adf
/
FastMemoryController
/
fmc.s
< prev
next >
Wrap
Text File
|
1989-04-05
|
6KB
|
265 lines
opt l+
incdir "vd0:include/"
include "misc/easystart.i"
jmp Start
include intuition/intuition.i
include intuition/intuition_lib.i
include exec/memory.i
include exec/exec_lib.i
include graphics/graphics_lib.i
include graphics/text.i
include libraries/dos_lib.i
include libraries/dos.i
PRINT macro
move #\1,d0
move #\2,d1
move.l Window,a1
move.l wd_RPort(a1),a1
CALLGRAF Move
move #\3,d0
move.l Window,a1
move.l wd_RPort(a1),a1
CALLGRAF SetAPen
lea \4,a0
move.l #\5,d0
move.l Window,a1
move.l wd_RPort(a1),a1
CALLGRAF Text
endm
OpenThem lea dosname(pc),a1
moveq.l #0,d0
CALLEXEC OpenLibrary
move.l d0,_DOSBase
lea intname(pc),a1
moveq.l #0,d0
CALLEXEC OpenLibrary
move.l d0,_IntuitionBase
lea grafname(pc),a1
moveq.l #0,d0
CALLEXEC OpenLibrary
move.l d0,_GfxBase
rts
_DOSBase dc.l 0
dosname DOSNAME
_GfxBase dc.l 0
grafname GRAFNAME
_IntuitionBase dc.l 0
intname INTNAME
NewWindow dc.w 300,100,160,45
dc.b 1,2
dc.l CLOSEWINDOW!GADGETUP
dc.l WINDOWCLOSE!ACTIVATE!WINDOWDRAG!WINDOWDEPTH!RMBTRAP
dc.l Gadget1
dc.l 0,Title
dc.l 0,0
dc.w 0,0,0,0
dc.w WBENCHSCREEN
Title dc.b "FMC by RF",0
Gadget1 dc.l 0
dc.w 9,13,32,30
dc.w GADGHCOMP!GADGHIMAGE!GADGIMAGE,RELVERIFY!TOGGLESELECT,BOOLGADGET
dc.l Image1,Image2,0,0,0
dc.w 1
dc.l 0
Image1 dc.w 0,0,32,30,2
dc.l Data1
dc.b 1+2,0
dc.l 0
Image2 dc.w 0,0,32,30,2
dc.l Data2
dc.b 1+2,0
dc.l 0
Font dc.l FName
dc.w TOPAZ_EIGHTY
dc.b FS_NORMAL
dc.b FPF_ROMFONT
FName dc.b "topaz.font",0
Window dc.l 0
Start bsr OpenThem
lea.l NewWindow(pc),a0
CALLINT OpenWindow
move.l d0,Window
beq exit
sub.l a1,a1
CALLEXEC FindTask
move.l d0,a1
move.b #-15,d0
CALLEXEC SetTaskPri
jsr Init
lea.l Font(pc),a0
CALLGRAF OpenFont
move.l Window,a1
move.l wd_RPort(a1),a1
move.l d0,a0
CALLGRAF SetFont
wait PRINT 50,20,2,Text1,4
PRINT 50,30,3,Text2,4
PRINT 50,40,3,Text3,4
moveq #MEMF_PUBLIC,d1
CALLEXEC AvailMem
move.l d0,d2
lea buffer,a0
bsr ASCII
PRINT 90,20,1,buffer,8
moveq #MEMF_FAST,d1
CALLEXEC AvailMem
move.l d0,d2
lea buffer,a0
bsr ASCII
PRINT 90,30,1,buffer,8
moveq #MEMF_CHIP,d1
CALLEXEC AvailMem
move.l d0,d2
lea buffer,a0
bsr ASCII
PRINT 90,40,1,buffer,8
move.l Window,a0
move.l wd_UserPort(a0),a0
CALLEXEC GetMsg
tst.l d0
bne Message
bra wait
Message move.l d0,a1
move.l im_Class(a1),d4
CALLEXEC ReplyMsg
cmp.l #CLOSEWINDOW,d4
bne Change
move.l Window,a0
CALLINT CloseWindow
jsr Reset
exit moveq #0,d0
rts
Change eor.b #$ff,FM_Flag
bra wait
ASCII clr.b d3
moveq #7,d0
lea buffer,a0
lea pwrof10,a1
nex moveq #'0',d1
dec addq #1,d1
sub.l (a1),d2
bcc.s dec
subq #1,d1
add.l (a1),d2
move.b d1,(a0)+
lea 4(a1),a1
dbra d0,nex
moveq #6,d0
lea buffer,a0
rep cmp.b #'0',(a0)
bne done
move.b #' ',(a0)+
dbra d0,rep
done rts
pwrof10 dc.l 10000000
dc.l 1000000
dc.l 100000
dc.l 10000
dc.l 1000
dc.l 100
dc.l 10
dc.l 1
buffer ds.b 10
Text1 dc.b "RAM "
Text2 dc.b "Fast"
Text3 dc.b "Chip"
Init move.l 4,a6
move.l _LVOAvailMem+2(a6),NAvM+2
move.l #NewAvailMem,_LVOAvailMem+2(a6)
move.l _LVOAllocMem+2(a6),NAcM+2
move.l #NewAllocMem,_LVOAllocMem+2(a6)
rts
Reset move.l 4,a6
move.l NAvM+2,_LVOAvailMem+2(a6)
move.l NAcM+2,_LVOAllocMem+2(a6)
rts
FM_Flag dc.b 0
even
NewAvailMem tst.b FM_Flag
beq.s NAvM
btst #2,d1
bne NAvM2
or.b #%11,d1
NAvM jmp 0
NAvM2 moveq.l #0,d0
rts
NewAllocMem tst.b FM_Flag
beq.s NAcM
btst #2,d1
bne NAvM2
or.b #%11,d1
NAcM jmp 0
section "data",DATA_C
Data1 dc.b $ff,$ff,$ff,$ff,$c0,$00,$00,$03,$c0,$79,$f0,$03,$c0,$cd,$98,$03
dc.b $c0,$cd,$98,$03,$c0,$79,$98,$03,$c0,$00,$00,$03,$c0,$03,$c0,$03
dc.b $c0,$07,$e0,$03,$c0,$07,$e0,$03,$c0,$03,$c0,$03,$c0,$03,$c0,$03
dc.b $c0,$07,$e0,$03,$c0,$0b,$d0,$03,$c0,$13,$c8,$03,$c0,$13,$c8,$03
dc.b $c0,$08,$10,$03,$c0,$07,$e0,$03,$c0,$00,$00,$03,$c0,$00,$00,$03
dc.b $c0,$00,$00,$03,$c0,$00,$00,$03,$c0,$00,$00,$03,$c0,$01,$c7,$03
dc.b $c1,$e3,$0c,$03,$c3,$37,$9e,$03,$c3,$33,$0c,$03,$c1,$e3,$0c,$03
dc.b $c0,$00,$00,$03,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$c0,$00,$00,$03
dc.b $c0,$00,$00,$03,$c0,$00,$00,$03,$c0,$00,$00,$03,$c0,$00,$00,$03
dc.b $c0,$28,$00,$03,$c0,$57,$c0,$03,$c0,$2f,$e0,$03,$c0,$17,$e0,$03
dc.b $c0,$2b,$c0,$03,$c0,$17,$c0,$03,$c0,$2b,$c0,$03,$c0,$17,$e0,$03
dc.b $c0,$2f,$f0,$03,$c0,$0f,$f0,$03,$c0,$07,$e0,$03,$c0,$00,$00,$03
dc.b $c0,$00,$00,$03,$c0,$00,$00,$03,$c0,$00,$00,$03,$c0,$00,$00,$03
dc.b $c0,$00,$00,$03,$c0,$00,$00,$03,$c0,$00,$00,$03,$c0,$00,$00,$03
dc.b $c0,$00,$00,$03,$c0,$00,$00,$03,$c0,$00,$00,$03,$ff,$ff,$ff,$ff
Data2 dc.b $ff,$ff,$ff,$ff,$c0,$00,$00,$03,$c0,$79,$f0,$03,$c0,$cd,$98,$03
dc.b $c0,$cd,$98,$03,$c0,$79,$98,$03,$c0,$00,$00,$03,$c0,$00,$00,$03
dc.b $c0,$00,$00,$03,$c0,$00,$00,$03,$c0,$00,$00,$03,$c0,$00,$00,$03
dc.b $c0,$07,$e0,$03,$c0,$08,$10,$03,$c0,$13,$c8,$03,$c0,$13,$c8,$03
dc.b $c0,$0b,$d0,$03,$c0,$07,$e0,$03,$c0,$03,$c0,$03,$c0,$03,$c0,$03
dc.b $c0,$07,$e0,$03,$c0,$07,$e0,$03,$c0,$03,$c0,$03,$c0,$01,$c7,$03
dc.b $c1,$e3,$0c,$03,$c3,$37,$9e,$03,$c3,$33,$0c,$03,$c1,$e3,$0c,$03
dc.b $c0,$00,$00,$03,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$c0,$00,$00,$03
dc.b $c0,$00,$00,$03,$c0,$00,$00,$03,$c0,$00,$00,$03,$c0,$00,$00,$03
dc.b $c0,$00,$00,$03,$c0,$00,$00,$03,$c0,$00,$00,$03,$c0,$00,$00,$03
dc.b $c0,$00,$00,$03,$c0,$00,$00,$03,$c0,$00,$00,$03,$c0,$07,$e0,$03
dc.b $c0,$0f,$f0,$03,$c0,$2f,$f0,$03,$c0,$17,$e0,$03,$c0,$2b,$c0,$03
dc.b $c0,$17,$c0,$03,$c0,$2b,$c0,$03,$c0,$17,$e0,$03,$c0,$2f,$e0,$03
dc.b $c0,$57,$c0,$03,$c0,$28,$00,$03,$c0,$00,$00,$03,$c0,$00,$00,$03
dc.b $c0,$00,$00,$03,$c0,$00,$00,$03,$c0,$00,$00,$03,$ff,$ff,$ff,$ff